min > 0



  • min > 0
    di alberto (utente non iscritto) data: 07/10/2013 20:44:25

    Salve. Ho 2 intervalli di celle B1:C20 e E1:F20. Mi servirebbe la formula che trovi in entrambi gli intervalli il valore minimo maggiore di zero. Grazie



  • di totygno71 (utente non iscritto) data: 07/10/2013 20:55:24

    =MIN(SE(B1:C20>0;B1:C20);SE(B1:C20>0;B1:C20))

    MATRICIANA! ^_^



  • di totygno71 (utente non iscritto) data: 07/10/2013 20:56:32

    Stesa cosa per l'atro range



  • di alberto (utente non iscritto) data: 07/10/2013 21:10:11

    Grazie per questa formula. A me serve il valore minimo maggiore di zero tra entrambi i range. Così dovrei usare 2 celle di appoggio.



  • di totygno71 (utente non iscritto) data: 07/10/2013 21:20:09

    Si e quindi ?



  • di gaetanopr data: 07/10/2013 21:36:17

    cit>>Stesa cosa per l'atro range
    Ciao totygno71, perchè non usi una sola formula

    =MIN(SE(B1:C20>0;B1:C20);SE(B1:C20>0;B1:C20);SE(E1:F20>0;E1:F20);SE(E1:F20>0;E1:F20))
    sempre matriciana



  • di totygno71 (utente non iscritto) data: 07/10/2013 21:39:51

    se sei a dieta e quindi megilio evitare a matriciana puoi utiizzare il codice che "snellisce" ^_^
     
    Option Explicit
    Sub minimo()
    Dim a As Range, b As Range, c As Range
    Dim myval As Double
    
    Set a = Range("B1:C20")
    Set b = Range("E1:F20")
    
    myval = Cells(1, 2)
    
    
    For Each c In a
        If c.Value >= 1 And myval > c.Value Then
        myval = c.Value
        End If
    Next c
    
    For Each c In b
        If c.Value >= 1 And myval > c.Value Then
        myval = c.Value
        End If
    Next c
    
    MsgBox myval
    
    End Sub



  • di totygno71 (utente non iscritto) data: 07/10/2013 21:50:22

    Dopo questo aborto di codice e quinta colonna che ci rallegra la vita.... passo e chiudo



  • di alberto (utente non iscritto) data: 07/10/2013 21:52:18

    A me me gusta la matriciana La tua macro dove va inserita? A me il risultato mi serve nella cella D21.



  • di Mister_x (utente non iscritto) data: 07/10/2013 23:57:34

    ciao

    perche' al posto della funzione MIN() non usi la funzione PICCOLO() in D21 ???

    =PICCOLO(B2:F20;CONTA.SE(B2:C20;"<=0")+CONTA.SE(E2:F20;"<=0")+1)

    ciao da mister_x


     
    D21=PICCOLO(B2:F20;CONTA.SE(B2:C20;"<=0")+CONTA.SE(E2:F20;"<=0")+1)
    
    






  • di Mister_x (utente non iscritto) data: 08/10/2013 00:18:55

    riciao

    mi sono accorto che ci potrebbero essere valori in D1:D20 quindi prova ad utilizzare
    quest'altra formula, che esclude il Range(D1:D20)

    =MIN(PICCOLO(B1:C20;CONTA.SE(B1:C20;"<=0")+1);PICCOLO(E1:F20;CONTA.SE(E1:F20;"<=0")+1))

    Mister_x
     
    D21=MIN(PICCOLO(B1:C20;CONTA.SE(B1:C20;"<=0")+1);PICCOLO(E1:F20;CONTA.SE(E1:F20;"<=0")+1))






  • di alberto (utente non iscritto) data: 08/10/2013 13:54:13

    Ok, grazie per la formula Mister_X è perfetta; anche la matriciana di totygno71 e di gaetanopr non è affatto male



  • di Vecchio Frac data: 08/10/2013 15:24:55

    Solo per semplificare il già performante codice di totygno.
    In pratica unifico il range di ricerca e faccio la ricerca in un colpo solo invece che spezzare l'attività in due cicli for consecutivi.
     
    Option Explicit
    
    Sub minimo()
    Dim a As Range, cell As Range, myvalue As Long
    
        Set a = Union(Range("B1:C20"), Range("E1:F20"))
        myvalue = 1000000000#
        For Each cell In a
            If cell < myvalue And Val(cell) > 0 Then myvalue = cell
        Next
       
        MsgBox myvalue
    
    End Sub






  • di alberto (utente non iscritto) data: 08/10/2013 16:23:29

    Ok, grazie dell'ulteriore codice.